#pragma once
#include "Data.h"
#include <conio.h>
#include <utility>
#include <vector>

enum class KeyDirection
{
    UP,
    DOWN,
    LEFT,
    RIGHT
};

class Game
{
public:
    static bool number_move(KeyDirection key_direction, Data &data);        // keep pushing number to one direction
    static bool number_add(KeyDirection key_direction, Data &data);         // add number to one direction
    static bool add_random_num(Data &data, int &new_row, int &new_column);  // add random number to empty place
    static int calculate_score(const Data &data);                           // calculate score
    static bool fail(const Data &data);                                     // check if game fail
    static bool success(const Data &data, const int &score);                                  // check if game success
};
